package com.eeds.service.project;

import com.eeds.common.model.PageInfo;
import com.eeds.model.project.req.*;
import com.eeds.model.project.res.*;

import javax.servlet.http.HttpServletRequest;

public interface ProjectService {

    /**
     * 添加项目信息
     * @param reqAddProjectVO
     * @return
     */
    Integer addProject(ReqAddProjectVO reqAddProjectVO);

    /**
     * 修改项目信息
     * @param reqUpdateProjectVO
     * @return
     */
    Integer updateProject(ReqUpdateProjectVO reqUpdateProjectVO);

    /**
     * 项目信息列表
     * reqProjectListVO
     * @param reqGetProjectListVO
     * @return
     */
    PageInfo<ResGetProjectListVO> getProjectList(HttpServletRequest request, ReqGetProjectListVO reqGetProjectListVO);

    /**
     * 获取项目信息
     * @param reqGetProjectInfoVO
     * @return
     */
    ResGetProjectInfoVO getProjectInfo(ReqGetProjectInfoVO reqGetProjectInfoVO);

    /**
     * 删除项目信息
     * @param reqDeleteProjectVO
     * @return
     */
    Integer deleteProject(ReqDeleteProjectVO reqDeleteProjectVO);

    /**
     * 获取项目时间信息
     * @param reqGetProjectDateInfoVO
     * @return
     */
    ResGetProjectDateInfoVO getProjectDateInfo(ReqGetProjectDateInfoVO reqGetProjectDateInfoVO);

    /**
     * 添加图纸审查
     * @param reqAddDrawingExaminationVO
     * @return
     */
    Integer addDrawingExamination(ReqAddDrawingExaminationVO reqAddDrawingExaminationVO);

    /**
     * 获取图纸审查
     * @param reqGetDrawingExaminationVO
     * @return
     */
    ResGetDrawingExaminationVO getDrawingExamination(ReqGetDrawingExaminationVO reqGetDrawingExaminationVO);

    /**
     * 修改图纸审查
     * @param reqUpdateDrawingExaminationVO
     * @return
     */
    Integer updateDrawingExamination(ReqUpdateDrawingExaminationVO reqUpdateDrawingExaminationVO);

    /**
     * 添加间隔审批
     * @param reqAddIntervalApprovalVO
     * @return
     */
    Integer addIntervalApproval(ReqAddIntervalApprovalVO reqAddIntervalApprovalVO);

    /**
     * 修改间隔审批
     * @param reqUpdateIntervalApprovalVO
     * @return
     */
    Integer updateIntervalApproval(ReqUpdateIntervalApprovalVO reqUpdateIntervalApprovalVO);

    /**
     * 获取间隔审批信息
     * @param reqGetIntervalApprovalInfoVO
     * @return
     */
    ResGetIntervalApprovalInfoVO getIntervalApprovalInfo(ReqGetIntervalApprovalInfoVO reqGetIntervalApprovalInfoVO);

    /**
     * 添加申请双重编号
     * @param reqAddApplicationForDoubleNumberVO
     * @return
     */
    Integer addApplicationForDoubleNumber(ReqAddApplicationForDoubleNumberVO reqAddApplicationForDoubleNumberVO);

    /**
     * 修改申请双重编号
     * @param reqUpdateApplicationForDoubleNumberVO
     * @return
     */
    Integer updateApplicationForDoubleNumber(ReqUpdateApplicationForDoubleNumberVO reqUpdateApplicationForDoubleNumberVO);

    /**
     * 获取申请双重编号信息
     * @param reqGetApplicationForDoubleNumberInfoVO
     * @return
     */
    ResGetApplicationForDoubleNumberInfoVO getApplicationForDoubleNumberInfo(ReqGetApplicationForDoubleNumberInfoVO reqGetApplicationForDoubleNumberInfoVO);

    /**
     * 添加下达双重编号
     * @param reqAddDoubleNumberingVO
     * @return
     */
    Integer addDoubleNumbering(ReqAddDoubleNumberingVO reqAddDoubleNumberingVO);

    /**
     * 修改下达双重编号
     * @param reqUpdateDoubleNumberingVO
     * @return
     */
    Integer updateDoubleNumbering(ReqUpdateDoubleNumberingVO reqUpdateDoubleNumberingVO);

    /**
     * 获取下达双重编号信息
     * @param reqGetDoubleNumberingInfoVO
     * @return
     */
    ResGetDoubleNumberingInfoVO getDoubleNumberingInfo(ReqGetDoubleNumberingInfoVO reqGetDoubleNumberingInfoVO);

    /**
     * 添加告知
     * @param reqAddInformVO
     * @return
     */
    Integer addInform(ReqAddInformVO reqAddInformVO);

    /**
     * 修改告知
     * @param reqUpdateInformVO
     * @return
     */
    Integer updateInform(ReqUpdateInformVO reqUpdateInformVO);

    /**
     * 获取告知
     * @param reqGetInformVO
     * @return
     */
    ResGetInformVO getInform(ReqGetInformVO reqGetInformVO);

    /**
     * 添加停电接火
     * @param reqAddBlackoutAndFireVO
     * @return
     */
    Integer addBlackoutAndFire(ReqAddBlackoutAndFireVO reqAddBlackoutAndFireVO);

    /**
     * 修改停电接火
     * @param reqUpdateBlackoutAndFireVO
     * @return
     */
    Integer updateBlackoutAndFire(ReqUpdateBlackoutAndFireVO reqUpdateBlackoutAndFireVO);

    /**
     * 获取停电接火信息
     * @param reqGetBlackoutAndFireInfoVO
     * @return
     */
    ResGetBlackoutAndFireInfoVO getBlackoutAndFireInfo(ReqGetBlackoutAndFireInfoVO reqGetBlackoutAndFireInfoVO);

    /**
     * 添加检查验收
     * @param reqAddIntermediateInspectionVO
     * @return
     */
    Integer addIntermediateInspection(ReqAddIntermediateInspectionVO reqAddIntermediateInspectionVO);

    /**
     * 修改检查验收
     * @param reqUpdateIntermediateInspectionVO
     * @return
     */
    Integer updateIntermediateInspection(ReqUpdateIntermediateInspectionVO reqUpdateIntermediateInspectionVO);

    /**
     * 获取检查验收
     * @param reqGetIntermediateInspectionVO
     * @return
     */
    ResGetIntermediateInspectionVO getIntermediateInspectionInfo(ReqGetIntermediateInspectionVO reqGetIntermediateInspectionVO);

    /**
     * 添加送电启动
     * @param reqAddPowerTransmissionStartUpVO
     * @return
     */
    Integer addPowerTransmissionStartUp(ReqAddPowerTransmissionStartUpVO reqAddPowerTransmissionStartUpVO);

    /**
     * 修改送电启动
     * @param reqUpdatePowerTransmissionStartUpVO
     * @return
     */
    Integer updatePowerTransmissionStartUp(ReqUpdatePowerTransmissionStartUpVO reqUpdatePowerTransmissionStartUpVO);

    /**
     * 修改送电启动
     * @param reqGetPowerTransmissionStartUpInfoVO
     * @return
     */
    ResGetPowerTransmissionStartUpInfoVO getPowerTransmissionStartUpInfo(ReqGetPowerTransmissionStartUpInfoVO reqGetPowerTransmissionStartUpInfoVO);

    /**
     * 添加保护定值报送
     * @param reqAddProtectionFixedValueReportingVO
     * @return
     */
    Integer addProtectionFixedValueReporting(ReqAddProtectionFixedValueReportingVO reqAddProtectionFixedValueReportingVO);

    /**
     * 修改保护定值报送
     * @param reqUpdateProtectionFixedValueReportingVO
     * @return
     */
    Integer updateProtectionFixedValueReporting(ReqUpdateProtectionFixedValueReportingVO reqUpdateProtectionFixedValueReportingVO);

    /**
     * 获取保护定值报送信息
     * @param reqGetProtectionFixedValueReportingVO
     * @return
     */
    ResGetProtectionFixedValueReportingInfoVO getProtectionFixedValueReportingInfo(ReqGetProtectionFixedValueReportingVO reqGetProtectionFixedValueReportingVO);

    /**
     * 添加供电方案
     * @param reqAddPowerSupplySchemeVO
     * @return
     */
    Integer addPowerSupplyScheme(ReqAddPowerSupplySchemeVO reqAddPowerSupplySchemeVO);

    /**
     * 修改供电方案
     * @param reqUpdatePowerSupplySchemeVO
     * @return
     */
    Integer updatePowerSupplyScheme(ReqUpdatePowerSupplySchemeVO reqUpdatePowerSupplySchemeVO);

    /**
     * 获取供电方案信息
     * @param reqGetPowerSupplySchemeInfoVO
     * @return
     */
    ResGetPowerSupplySchemeInfoVO getPowerSupplySchemeInfo(ReqGetPowerSupplySchemeInfoVO reqGetPowerSupplySchemeInfoVO);

    /**
     * 获取项目基本信息
     * @param reqGetProjectBaseInfoVO
     * @return
     */
    ResGetProjectBaseInfoVO getProjectBaseInfo(ReqGetProjectBaseInfoVO reqGetProjectBaseInfoVO);

    /**
     * 添加供电方案
     * @param reqAddUserEvaluationVO
     * @return
     */
    Integer addUserEvaluation(ReqAddUserEvaluationVO reqAddUserEvaluationVO);

    /**
     * 修改供电方案
     * @param reqUpdateUserEvaluationVO
     * @return
     */
    Integer updateUserEvaluation(ReqUpdateUserEvaluationVO reqUpdateUserEvaluationVO);

    /**
     * 获取用户评价信息
     * @param reqGetUserEvaluationInfoVO
     * @return
     */
    ResGetUserEvaluationInfoVO getUserEvaluationInfo(ReqGetUserEvaluationInfoVO reqGetUserEvaluationInfoVO);

    /**
     * 添加资料归档
     * @param reqAddDataArchivingVO
     * @return
     */
    Integer addDataArchiving(ReqAddDataArchivingVO reqAddDataArchivingVO);

    /**
     * 修改资料归档
     * @param reqUpdateDataArchivingVO
     * @return
     */
    Integer updateDataArchiving(ReqUpdateDataArchivingVO reqUpdateDataArchivingVO);

    /**
     * 获取资料归档信息
     * @param reqGetDataArchivingInfoVO
     * @return
     */
    ResGetDataArchivingInfoVO getDataArchivingInfo(ReqGetDataArchivingInfoVO reqGetDataArchivingInfoVO);

    /**
     * 添加现场勘查
     * @param reqAddSceneInvestigationVO
     * @return
     */
    Integer addSceneInvestigation(ReqAddSceneInvestigationVO reqAddSceneInvestigationVO);

    /**
     * 修改现场勘查
     * @param reqUpdateSceneInvestigationVO
     * @return
     */
    Integer updateSceneInvestigation(ReqUpdateSceneInvestigationVO reqUpdateSceneInvestigationVO);

    /**
     * 获取检查验收列表
     * @param reqGetIntermediateInspectionListVO
     * @return
     */
    PageInfo<ResGetProjectListVO> getIntermediateInspectionList(ReqGetIntermediateInspectionListVO reqGetIntermediateInspectionListVO);

    /**
     * 获取现场勘查信息
     * @param reqGetSceneInvestigationInfoVO
     * @return
     */
    ResGetSceneInvestigationInfoVO getSceneInvestigationInfo(ReqGetSceneInvestigationInfoVO reqGetSceneInvestigationInfoVO);

    /**
     * 添加竣工资料收集
     * @param reqAddCompletionDataCollectionVO
     * @return
     */
    Integer addCompletionDataCollection(ReqAddCompletionDataCollectionVO reqAddCompletionDataCollectionVO);
}
